home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
JR-USER1.ZIP
/
SCUMUSER.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-09-11
|
10KB
|
732 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Integer TINTEGER004(2)
Integer TINTEGER005(2)
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER015
Integer INTEGER016
Integer INTEGER017
Integer INTEGER018
String TSTRING008(12)
String TSTRING009(6)
String STRING010
String STRING011
String STRING012
String TSTRING013(3)
String STRING014
String STRING015
;------------------------------------------------------------------------------
If (AnsiOn() == 0) Then
Print "@X07@CLS@"
Newline
PrintLn "USER MAiNTENANCE v1.o CAN'T RUN WiTHOUT ANSi !"
Newline
End
Endif
TSTRING008(1) = " GROUP "
TSTRING008(2) = " PASSWORD "
TSTRING008(3) = " SEC. LEVEL "
TSTRING008(4) = " DATA # "
TSTRING008(5) = " VOiCE # "
TSTRING008(6) = " EXP. DATE "
TSTRING008(7) = " EXP. SEC. "
TSTRING008(8) = " EXPERT MODE "
TSTRING008(9) = " PAGE LENGTH "
TSTRING008(10) = " PROTOCOL "
TSTRING008(11) = " COMMENT #1 "
TSTRING008(12) = " COMMENT #2 "
TSTRING009(1) = " EDiT USER "
TSTRING009(2) = " NEXT USER "
TSTRING009(3) = " PREViOUS USER "
TSTRING009(4) = " DELETE USER "
TSTRING009(5) = " FiND USER "
TSTRING009(6) = " QUiT! "
INTEGER016 = 6
INTEGER009 = 12
INTEGER007 = 1
INTEGER006 = 1
INTEGER008 = INTEGER006
TINTEGER004(1) = 4
TINTEGER005(1) = 6
TSTRING013(1) = "@X07"
TSTRING013(2) = "@X1F"
TSTRING013(3) = "@X09"
StartDisp 1
Print "@X07@CLS@"
DispFile PPEPath() + "SCUMUSER.PCB", 0
GetUser
INTEGER014 = U_RecNum(U_Name())
FReAltUser
Gosub LABEL031
Gosub LABEL030
INTEGER018 = INTEGER014
STRING014 = U_Name()
Gosub LABEL020
:LABEL001
INTEGER009 = 6
Gosub LABEL023
If (STRING011 <> "SELECT") Then
INTEGER008 = INTEGER006
Gosub LABEL020
Else
BOOLEAN002 = 0
Gosub LABEL021
Goto LABEL002
Endif
Goto LABEL001
:LABEL002
If (INTEGER008 == 1) Then
INTEGER007 = 1
INTEGER006 = 1
INTEGER009 = 12
Gosub LABEL022
:LABEL003
Gosub LABEL023
If (STRING011 <> "SELECT") Then
If (STRING011 == Chr(27)) Then
BOOLEAN002 = 1
Gosub LABEL021
BOOLEAN002 = 0
Gosub LABEL020
INTEGER006 = 1
Goto LABEL001
Endif
Gosub LABEL022
Goto LABEL004
Endif
Gosub LABEL007
:LABEL004
Goto LABEL003
Endif
If (INTEGER008 == 2) Then
GetAltUser INTEGER014 + 1
If (CurUser() == -1) Then
GetAltUser 1
Endif
Gosub LABEL034
Gosub LABEL031
Gosub LABEL020
INTEGER006 = 2
Goto LABEL001
Endif
If (INTEGER008 == 3) Then
If (U_RecNum(U_Name()) == 1) Then
GetAltUser 1
Goto LABEL005
Endif
GetAltUser INTEGER014 - 1
Gosub LABEL034
Gosub LABEL031
:LABEL005
Gosub LABEL020
INTEGER006 = 3
Goto LABEL001
Endif
If (INTEGER008 == 4) Then
If (U_Sec > 0) Then
U_Sec = 0
DelUser
AnsiPos 20, 8
Print TSTRING013(3) + "0 @X08"
PutUser
Endif
INTEGER006 = 4
Gosub LABEL020
Goto LABEL001
Endif
If (INTEGER008 == 5) Then
Gosub LABEL034
INTEGER011 = 20
INTEGER012 = 4
INTEGER013 = 25
INTEGER015 = 1
STRING012 = ""
STRING010 = ""
Gosub LABEL032
If (STRING010 == "") Then
Gosub LABEL031
Goto LABEL006
Endif
INTEGER017 = INTEGER014
INTEGER014 = 0
BOOLEAN003 = 0
While (BOOLEAN003 == 0) Do
Inc INTEGER014
GetAltUser INTEGER014
STRING014 = U_Name()
AnsiPos 62, 4
Print TSTRING013(3), INTEGER014, "@X07 "
If (CurUser() == -1) Then
BOOLEAN003 = 1
Endif
INTEGER010 = 0
INTEGER010 = InStr(Upper(STRING014), Upper(STRING010))
If (INTEGER010 > 0) Then
If (BOOLEAN003 == 0) Then
BOOLEAN004 = 1
BOOLEAN003 = 1
Endif
Endif
EndWhile
If (BOOLEAN004 == 1) Then
Gosub LABEL034
Gosub LABEL031
Goto LABEL006
Endif
GetAltUser INTEGER017
Gosub LABEL034
Gosub LABEL031
:LABEL006
INTEGER006 = 5
Gosub LABEL020
Goto LABEL001
Endif
If (INTEGER008 == 6) Then
Print "@X07@CLS@"
PrintLn "@X01 φ @X0BSCUM '94 @X01φ @X0BUSER MAiNTENANCE @X03v@X0B1@X03.@X0Bo @X01φ @X0BCODED BY@X03: @X0BJoLLY RoGeR @X01φ @X0BSCUM '94 @X01φ"
Newline
End
Endif
Goto LABEL001
:LABEL007
If (INTEGER006 == 1) Then
INTEGER011 = 20
INTEGER012 = 6
INTEGER013 = 24
INTEGER015 = 1
STRING012 = U_City
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_City = STRING012
Goto LABEL008
Endif
U_City = STRING010
:LABEL008
PutUser
Endif
If (INTEGER006 == 2) Then
INTEGER011 = 20
INTEGER012 = 7
INTEGER013 = 12
INTEGER015 = 3
STRING012 = U_Pwd
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_Pwd = STRING012
Goto LABEL009
Endif
U_Pwd = STRING010
:LABEL009
PutUser
Endif
If (INTEGER006 == 3) Then
INTEGER011 = 20
INTEGER012 = 8
INTEGER013 = 3
INTEGER015 = 4
STRING012 = U_Sec
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_Sec = STRING012
Goto LABEL010
Endif
U_Sec = STRING010
:LABEL010
PutUser
Endif
If (INTEGER006 == 4) Then
INTEGER011 = 20
INTEGER012 = 9
INTEGER013 = 13
INTEGER015 = 2
STRING012 = U_BDPhone
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_BDPhone = STRING012
Goto LABEL011
Endif
U_BDPhone = STRING010
:LABEL011
PutUser
Endif
If (INTEGER006 == 5) Then
INTEGER011 = 20
INTEGER012 = 10
INTEGER013 = 13
INTEGER015 = 2
STRING012 = U_HVPhone
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_HVPhone = STRING012
Goto LABEL012
Endif
U_HVPhone = STRING010
:LABEL012
PutUser
Endif
If (INTEGER006 == 6) Then
INTEGER011 = 20
INTEGER012 = 11
INTEGER013 = 6
INTEGER015 = 2
STRING012 = U_ExpDate
STRING010 = ""
Gosub LABEL032
If (STRING010 == "") Then
U_ExpDate = STRING012
Goto LABEL013
Endif
U_ExpDate = STRING010
:LABEL013
PutUser
STRING010 = U_ExpDate
Gosub LABEL033
Endif
If (INTEGER006 == 7) Then
INTEGER011 = 20
INTEGER012 = 12
INTEGER013 = 3
INTEGER015 = 4
STRING012 = U_ExpSec
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_ExpSec = STRING012
Goto LABEL014
Endif
U_ExpSec = STRING010
:LABEL014
PutUser
Endif
If (INTEGER006 == 8) Then
INTEGER011 = 20
INTEGER012 = 13
If (U_Expert == 1) Then
STRING010 = "NO "
U_Expert = 0
Goto LABEL015
Endif
STRING010 = "YES"
U_Expert = 1
:LABEL015
Gosub LABEL033
PutUser
Endif
If (INTEGER006 == 9) Then
INTEGER011 = 20
INTEGER012 = 14
INTEGER013 = 2
INTEGER015 = 2
STRING012 = U_PageLen
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_PageLen = STRING012
Goto LABEL016
Endif
U_PageLen = STRING010
:LABEL016
PutUser
Endif
If (INTEGER006 == 10) Then
INTEGER011 = 20
INTEGER012 = 15
INTEGER013 = 1
INTEGER015 = 5
STRING012 = U_Trans
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_Trans = STRING012
Goto LABEL017
Endif
U_Trans = STRING010
:LABEL017
PutUser
Endif
If (INTEGER006 == 11) Then
INTEGER011 = 20
INTEGER012 = 16
INTEGER013 = 30
INTEGER015 = 1
STRING012 = U_Cmnt1
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_Cmnt1 = STRING012
Goto LABEL018
Endif
U_Cmnt1 = STRING010
:LABEL018
PutUser
Endif
If (INTEGER006 == 12) Then
INTEGER011 = 20
INTEGER012 = 17
INTEGER013 = 30
INTEGER015 = 1
STRING012 = U_Cmnt2
STRING010 = ""
Gosub LABEL032
Gosub LABEL033
If (STRING010 == "") Then
U_Cmnt2 = STRING012
Goto LABEL019
Endif
U_Cmnt2 = STRING010
:LABEL019
PutUser
Endif
AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
Return
:LABEL020
AnsiPos 7, 19
If (INTEGER008 == 1) Then
Print TSTRING013(2) + TSTRING009(1) + TSTRING013(1) + TSTRING009(2) + TSTRING013(1) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
Endif
If (INTEGER008 == 2) Then
Print TSTRING013(1) + TSTRING009(1) + TSTRING013(2) + TSTRING009(2) + TSTRING013(1) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
Endif
If (INTEGER008 == 3) Then
Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING013(2) + TSTRING009(3) + TSTRING013(1) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
Endif
If (INTEGER008 == 4) Then
Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING013(2) + TSTRING009(4) + TSTRING013(1) + TSTRING009(5) + TSTRING009(6)
Endif
If (INTEGER008 == 5) Then
Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING009(4) + TSTRING013(2) + TSTRING009(5) + TSTRING013(1) + TSTRING009(6)
Endif
If (INTEGER008 == 6) Then
Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING013(2) + TSTRING009(6) + TSTRING013(1)
Endif
Return
:LABEL021
If (BOOLEAN002 == 1) Then
AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
Print TSTRING013(1) + TSTRING008(INTEGER006)
Else
AnsiPos 7, 19
Print TSTRING013(1) + TSTRING009(1) + TSTRING009(2) + TSTRING009(3) + TSTRING009(4) + TSTRING009(5) + TSTRING009(6)
Endif
Return
:LABEL022
AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER007 - 1
Print TSTRING013(1) + TSTRING008(INTEGER007)
AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
Print TSTRING013(2) + TSTRING008(INTEGER006)
AnsiPos TINTEGER004(1), TINTEGER005(1) + INTEGER006 - 1
Return
:LABEL023
STRING010 = ""
STRING011 = ""
While (STRING010 == "") Do
STRING010 = Inkey()
EndWhile
If (Left(STRING010, 2) == "UP") Then
If (INTEGER006 > 1) Then
INTEGER007 = INTEGER006
INTEGER006 = INTEGER007 - 1
STRING011 = "UP"
Goto LABEL024
Endif
INTEGER007 = INTEGER006
INTEGER006 = INTEGER009
Endif
:LABEL024
If (Left(STRING010, 4) == "HOME") Then
If (INTEGER006 > 1) Then
INTEGER007 = INTEGER006
INTEGER006 = 1
STRING011 = "UP"
Endif
Endif
If (Left(STRING010, 4) == "LEFT") Then
If (INTEGER006 > 1) Then
INTEGER007 = INTEGER006
INTEGER006 = INTEGER007 - 1
STRING011 = "UP"
Goto LABEL025
Endif
INTEGER007 = INTEGER006
INTEGER006 = INTEGER009
Endif
:LABEL025
If (Upper(STRING010) == "A") Then
If (INTEGER006 > 1) Then
INTEGER007 = INTEGER006
INTEGER006 = INTEGER007 - 1
STRING011 = "UP"
Goto LABEL026
Endif
INTEGER007 = INTEGER006
INTEGER006 = INTEGER009
Endif
:LABEL026
If (Left(STRING010, 4) == "DOWN") Then
If (INTEGER006 < INTEGER009) Then
INTEGER007 = INTEGER006
INTEGER006 = INTEGER007 + 1
STRING011 = "DOWN"
Goto LABEL027
Endif
INTEGER007 = INTEGER006
INTEGER006 = 1
Endif
:LABEL027
If (Left(STRING010, 3) == "END") Then
If (INTEGER006 < INTEGER009) Then
INTEGER007 = INTEGER006
INTEGER006 = INTEGER009
STRING011 = "DOWN"
Endif
Endif
If (Left(STRING010, 5) == "RIGHT") Then
If (INTEGER006 < INTEGER009) Then
INTEGER007 = INTEGER006
INTEGER006 = INTEGER007 + 1
STRING011 = "DOWN"
Goto LABEL028
Endif
INTEGER007 = INTEGER006
INTEGER006 = 1
Endif
:LABEL028
If (Upper(STRING010) == "Z") Then
If (INTEGER006 < INTEGER009) Then
INTEGER007 = INTEGER006
INTEGER006 = INTEGER007 + 1
STRING011 = "DOWN"
Goto LABEL029
Endif
INTEGER007 = INTEGER006
INTEGER006 = 1
Endif
:LABEL029
If (STRING010 == Chr(13)) Then
STRING011 = "SELECT"
Endif
If (Left(STRING010, 5) == "ENTER") Then
STRING011 = "SELECT"
Endif
If (Left(STRING010, 6) == "RETURN") Then
STRING011 = "SELECT"
Endif
If (STRING011 == "") Then
STRING011 = STRING010
Endif
Return
:LABEL030
For INTEGER010 = 6 To 17
AnsiPos 4, INTEGER010
Print TSTRING013(1) + TSTRING008(INTEGER010 - 5)
Next
:LABEL031
INTEGER014 = U_RecNum(U_Name())
AnsiPos 20, 4
Print TSTRING013(3) + U_Name()
AnsiPos 62, 4
Print TSTRING013(3), INTEGER014, " "
AnsiPos 62, 5
Print TSTRING013(3) + "@NODE@"
AnsiPos 20, 6
Print TSTRING013(3) + U_City
AnsiPos 20, 7
Print TSTRING013(3) + U_Pwd
AnsiPos 20, 8
Print TSTRING013(3) + U_Sec
AnsiPos 20, 9
Print TSTRING013(3) + U_BDPhone
AnsiPos 20, 10
Print TSTRING013(3) + U_HVPhone
AnsiPos 20, 11
Print TSTRING013(3), U_ExpDate
AnsiPos 20, 12
Print TSTRING013(3) + U_ExpSec
AnsiPos 20, 13
If (U_Expert == 1) Then
Print TSTRING013(3) + "YES"
Else
Print TSTRING013(3) + "NO "
Endif
AnsiPos 20, 14
Print TSTRING013(3) + U_PageLen
AnsiPos 20, 15
Print TSTRING013(3) + U_Trans
AnsiPos 20, 16
Print TSTRING013(3) + U_Cmnt1
AnsiPos 20, 17
Print TSTRING013(3) + U_Cmnt2
Return
:LABEL032
AnsiPos INTEGER011, INTEGER012
Print "@X07" + Space(INTEGER013 + 2)
AnsiPos INTEGER011, INTEGER012
If (INTEGER015 == 1) Then
InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Ascii(), 0
Endif
If (INTEGER015 == 2) Then
InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Num() + ".-", 0
Endif
If (INTEGER015 == 3) Then
InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Pwd(), 0
Endif
If (INTEGER015 == 4) Then
InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Num(), 0
Endif
If (INTEGER015 == 5) Then
InputStr "_", STRING010, "@X0F", INTEGER013, Mask_Ascii(), 8
Endif
Return
:LABEL033
AnsiPos INTEGER011, INTEGER012
If (STRING010 == "") Then
Print TSTRING013(3) + STRING012
Else
Print TSTRING013(3) + STRING010
Endif
Return
:LABEL034
For INTEGER010 = 4 To 17
AnsiPos 20, INTEGER010
Print "@X07" + Space(28)
Next
Return
STRING015 = "■■■ A JoLLY RoGeR PPE - SCuM '94 PPE Division ■■■"
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 120 Goto
; 204 Let
; 36 Print
; 2 PrintLn
; 80 If
; 1 DispFile
; 1 StartDisp
; 1 GetUser
; 13 PutUser
; 1 DelUser
; 5 InputStr
; 50 Gosub
; 9 Return
; 1 Inc
; 3 Newline
; 29 AnsiPos
; 6 GetAltUser
; 1 FReAltUser
;
;
; ■ Functions used :
;
; 2 -
; 91 +
; 10 -
; 66 ==
; 2 <>
; 6 <
; 2 <=
; 6 >
; 4 >=
; 80 !
; 4 &&
; 2 ||
; 4 Upper()
; 8 Left()
; 2 Space()
; 2 Chr()
; 1 InStr()
; 6 U_Name()
; 1 Inkey()
; 1 Mask_Pwd()
; 2 Mask_Num()
; 2 Mask_Ascii()
; 1 PPEPath()
; 1 AnsiOn()
; 3 U_RecNum()
; 2 CurUser()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WRDH
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; D - Delete user ■ 5
; Program is deleting account(s)... Check!
; ■ Search for : DELUSER
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 2 While/EndWhile
; 76 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------